package io.renren.modules.pet.service;

import io.renren.common.service.CrudService;
import io.renren.modules.pet.vo.PetAdoptionVO;
import io.renren.modules.pet.dto.PetAdoptionDTO;
import io.renren.modules.pet.entity.PetAdoptionEntity;
import io.renren.modules.pet.vo.PetSendVO;

import java.util.List;
import java.util.Map;

/**
 * 宠物领养申请表
 *
 * @author zwp zwp
 * @since 1.0.0 2025-03-15
 */
public interface PetAdoptionService extends CrudService<PetAdoptionEntity, PetAdoptionVO> {
    
    /**
     * 保存
     * @param petAdoptionDTO
     */
    void save(PetAdoptionDTO petAdoptionDTO);
    
    /**
     * 修改
     * @param petAdoptionDTO
     */
    void update(PetAdoptionDTO petAdoptionDTO);

    /**
     * 保存领养申请
     * @param dto
     */
    void savePetAdoption(PetAdoptionDTO dto);

    /**
     * 根据送养宠物ID来获取宠物领养申请表信息
     * @param petSendId
     * @return
     */
    List<PetAdoptionVO> getByPetSendId(Long petSendId);

    /**
     * 同意领养
     * @param dto
     */
    void agreePetAdoption(PetAdoptionDTO dto);

    /**
     * 不同意领养
     * @param dto
     */
    void disagreePetAdoption(PetAdoptionDTO dto);

    /**
     * 获取当前用户领养的宠物
     * @return
     */
    List<PetSendVO> getMyAdoptionPets(Map<String, Object> params);
}